System and method for determining an image decimation range for use in a machine vision system

ABSTRACT

A computer controlled system, method, and corresponding computer data product for determining a range of image decimation values for use in processing of images within a machine vision system. The system and method generates a high resolution reference image, generates a set of decimated reference images from the high resolution reference image, generates a set of interpolated reference images having a spatial image resolution identical to the high resolution reference image from the set of decimated images, cross-correlates the set of interpolated reference images with the high resolution reference image to generate a set of cross-correlation values, and selects a subset of the set of decimated reference images corresponding to interpolated references images that generated a cross correlation value greater than a predetermined threshold value.

TECHNICAL FIELD

[0001] The present invention relates to data processing of images within a machine vision system, and more specifically to a system and method for determining a range of image decimation values for use in processing of images within a machine vision system.

BACKGROUND

[0002] The use of machine based vision systems has always been a computationally intensive task as a large number of pixels need to be processed in order for the acquired image to be processed. This processing requirement arises from the need for high resolution images to be acquired to accurately represent the item represented in the image. The processing capabilities of embedded processing systems that are part of machine based vision systems have required the lowest possible image resolution images to be used.

[0003] Previous solutions have either used large and expensive processing systems if the vision systems are required to operate in near-real time or used an off-line processing approach that would not permit the determination of vision based decisions before the next item is examined by the vision system. Off-line systems are not useful in most applications as automating the visual inspection of items typically is desired for a large number of items, such as a sequence of items found on an assembly line.

[0004] Typically, an item being inspected will possess a range of image resolution values that may be successfully used in vision systems. The minimum resolution that may be used for the processing to be performed in the vision processing system will depend upon the information content found within a reference image that is compared with acquired images. In order for a vision system to minimize the processing requirements of the vision system, a range of acceptable resolution values needs to be determined. In prior systems, no such range of acceptable image resolution values have been determined. The present invention disclosed herein overcomes the above limitations of the prior art machine-based vision systems.

SUMMARY OF THE INVENTION

[0005] The present invention includes a system and method for determining a range of image decimation values for use in processing of images within a machine vision system. In accordance with the invention, one embodiment includes a computer controlled system for determining a range of image decimation values for use in processing of images within a machine vision system. The system includes a reference image data module for providing a high resolution reference image, an image decimation module for generating a set of decimated images having a reduced resolution based upon the high resolution reference image, an image interpolation module for generating a set of interpolated reference images having a spatial image resolution identical to the high resolution reference image from the set of decimated images, an image cross correlation module for cross-correlating the set of interpolated reference images with the high resolution reference image, and an image selection module for determining the lowest possible resolution for decimated images to be used in a normalized gray scale pattern find process.

[0006] Another embodiment of the present invention includes a computer controlled method, and corresponding computer data product for determining a range of image decimation values for use in processing of images within a machine vision system. The method generates a high resolution reference image, generates a set of decimated reference image from the high resolution reference image, generates a set of interpolated reference images having a spatial image resolution identical to the high resolution reference image from the set of decimated images, cross-correlates the set of interpolated reference images with the high resolution reference image to generate a set of cross-correlation values, and selects a subset of the set of decimated reference images having a lowest possible image resolution corresponding to interpolated references images that generated a cross correlation value greater than a predetermined threshold value.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] In the drawings, wherein like reference letters and numerals indicate corresponding elements throughout the several views:

[0008]FIG. 1 illustrates a system for providing a machine vision system in accordance with the present invention;

[0009]FIG. 2a illustrates an embodiment of a special purpose computing system for providing a machine vision system in accordance with the present invention;

[0010]FIG. 2b illustrates an embodiment of a special purpose computing system for providing a FPGA implemented machine vision system in accordance with the present invention;

[0011]FIG. 3 illustrates an embodiment of computing systems used as part of a system providing a machine vision system in accordance with the present invention;

[0012]FIG. 4 illustrates an example machine vision system attempting to locate a reference image within an image from a camera field of view in accordance with an embodiment of the present invention;

[0013]FIG. 5 illustrates a series of possible reference image arrangements when found in the camera image in accordance with the present invention;

[0014]FIG. 6 illustrates a correlation of a reference image with a larger image at various decimation levels in accordance with an example embodiment of the present invention.

[0015]FIG. 7 illustrates a processing sequence of images to locate an acceptable range of decimation levels for use in locating a reference image within a larger image in accordance with an embodiment of the present invention.

[0016]FIG. 8 illustrates a set of processing modules used within an example embodiment of a machine vision system in accordance with the present invention.

DETAILED DESCRIPTION

[0017] The present invention relates to a system and method for data processing of images within a machine vision system, and more specifically to a system and method for determining a range of image decimation values for use in processing of images within a machine vision system. FIG. 1 illustrates a system for providing a machine vision system in accordance with the present invention. The machine vision system includes a image input device, such as a video camera 111 or digital image camera 110, that are connected to a data processing system 102. The vision system is typically used to obtain images of objects of interest such as parts 104 that are being manufactured on an assembly line 103. The image input device 111-110 obtains an image of the object of interest 104 that is first pre-processed 112 within an embedded processing system before being further processed within the computing system 102 as needed. The present invention relates to the analysis of a reference image that occurs as part of the selection and creation of a reference image that is loaded into the image pre-processing module 112 before the vision system is used to examine the item of interest 104.

[0018]FIG. 2a illustrates an embodiment of a special purpose computing system for providing a machine vision system in accordance with the present invention. Typically, a special purpose computing system is used to perform the pre-processing of acquired images that are to be scanned to compare the acquired image with a previously generated and stored image of the item of interest. An example of a vision system that would utilize such a pre-processing system may be found within a commonly assigned and concurrently filed U.S. Patent Application, titled, “SYSTEM AND METHOD FOR USING NORMALIZED GRAY SCALE PATTERN FIND”, (Attorney Docket No. 1684.148-US-03), Serial No. ______, filed ______. This application is hereby incorporated by reference as if recited in its entirety herein.

[0019] The special purpose computing system includes a main processor 201, a correlation processor 202, and memory 211-212 which all communicate over a system bus 213. The memory may consist of RAM of different types including synchronous dynamic RAM (SDRAM) 211 and mass storage that may consist of flash memory 212. Of course, one skilled in the art will recognize that various memory architectures may be utilized to construct the present invention as recited within the attached claims.

[0020] The correlation processor possesses its own memory system which may include synchronous dynamic RAM (SDRAM) 221 and SRAM 222 to store the data needed for the correlation processing that is part of the pre-processing subsystem. The correlation processor is also electrically connected to an image generation device 203, such as a digital camera. The correlation processor may be constructed from a custom electronic device made using a Field Programmable Gate Array (FPGA). An example of such a FPGA is shown in FIG. 2b.

[0021] During the operation of the pre-processing subsystem, an acquired image is generated by the camera 203 and passed into the correlation processor 202. This processor 202 may store part or all of the acquired image into its memory 221-222 for use in its processing. As is discussed later in more detail in relation to FIG. 4, the correlation processor will correlate a small reference image with the larger acquired image in an attempt to locate where within the larger image the reference image is located. This computationally intensive process occurs within the correlation processor 202. As is also discussed in reference to FIG. 6, the resolution of the acquired image and the reference image may be varied to minimize the processing needed during the pre-processing operations.

[0022] The correlation processor 202 receives the reference image from the main processor 201 and passes the results of the correlation process to the main processor 201 for additional processing. The main processor 201 also instructs the correlation processor 202 where in the acquired image the correlation operation is to occur. The main processor 201 receives the generated correlation image that may be searched for a peak value that corresponds to the location where the best match between the reference image and the processed portion of the acquired image. The main processor 201 may also instruct the correlation processor 202 to use a lower resolution image to speed up the processing. In such a case, the acquired image must be reduced in resolution either by averaging pixel values to create a lower resolution acquired image or by sub-sampling the acquired image to create the lower resolution acquired image. In either case, a reference image having the same spatial resolution as the acquired resolution is needed before the correlation operation occurs.

[0023] The main processor 201 may instruct the correlation processor to correlate the acquired image against a series of references where each of the references possess a different spatial resolution. In such a case, the entire acquired image may be correlated using the lowest resolution image for the reference image to find one or more possible match locations. Once these possible match locations are found, smaller regions of the acquired image may be correlated using higher resolution reference images. In such an arrangement, the vast majority of the acquired image will be processed at the lowest resolution, thus requiring the minimum amount of processing to occur. The highest resolution references may be used only over small areas where there is high confidence that the match is going to occur. As such, a processing system may be constructed that uses high resolution references to determine the final match location without the need to process the acquired image at the highest resolution.

[0024] The interaction between the main processor 201 and the correlation processor 202 occurs in this manner until the best match location is determined. The best match location and the acquired image may then be passed to a general processing system for further processing as needed. In many vision systems, the task of the pre-processing system is to determine the location of a known reference region in a larger image. Once the location, orientation, and scale of the reference is obtained, then further processing may occur. For example, a reference mark may be placed on a printed circuit board to be processed by a vision system as it passes on an assembly line. The vision system acquires an image of a printed circuit board as it passes through the vision system's field of vision. If the vision system can locate the reference mark in the acquired image, the vision system may then look for other components at known locations relative to the reference mark within the acquired image. Using a reference mark to register the item being scanned within the acquired image will greatly simplify the vision processing and inspection processing to occur.

[0025]FIG. 2b illustrates an embodiment of a special purpose computing system for providing a FPGA implemented machine vision system in accordance with the present invention. This example embodiment illustrates the modules within the FPGA correlation processor 202 within a processing system if FIG. 2b. The FPGA correlation processor 202 includes a processor interface module 231, a correlation processor 232, a memory controller module 233 and a video controller 234.

[0026] The processor interface module 231 handles both command and data transfers between the processor 201 and the other blocks of the FPGA 202. The video controller module 234 handles image transfers from the camera to memory controller module 233. When the processor 201 instructs the FPGA 202 to capture an image the FPGA 202 waits for a valid frame from the camera and then begins transferring image data to the memory controller 233 for each valid line.

[0027] The memory controller module 233 handles transfers from the FPGA SRAM 222 to the processor 201. This operation allows the image to be displayed for a user. The memory controller module 233 also handles transfers from the correlation processor module 232 for normalized grayscale correlation.

[0028] The memory controller module 233 handles transfers to the FPGA SDRAM 221 from the video controller module 234. This operation allows the storage of the image from the camera. The memory controller module 233 also handles transfer to the FPGA SDRAM 221. This operation allows double buffered images to be moved for processing.

[0029] The memory controller module 233 handles transfers from the FPGA SDRAM 221 to the processor 201 and the correlation processor module 232 for normalized grayscale correlation.

[0030] The memory controller module 233 handles transfers to the FPGA SDRAM 221 from the video controller module 234. This operation allows the storage of a double buffered image from the camera. The memory controller module handles transfers to the processor 201 to allow the storage of the reference pattern image along with all the rotated and decimated reference pattern images.

[0031] Prior to capturing an image from the camera the processor 201 instructs the memory controller module 233 to store the image in either just FPGA SRAM 222 or also the FPGA SDRAM memory 221. The processor 201 also provides the memory controller module 233 with starting pointers for the image buffers. During an image transfer from the camera the memory controller module 233 accepts video data from the video controller module 234 and stores it in the specified memory buffer(s).

[0032] Prior to starting the correlation process the processor 201 provides the memory controller module 233 with pointers to the location of the appropriate reference pattern in the FPGA SDRAM memory 221 and the current image in the FPGA SRAM 222.

[0033] The correlation processor module 232 consists of both multipliers and adders allowing for hardware assist in the calculation of the various terms for the normalized grayscale correlation equation (NGC). The NGC equation is:

R=Numerator/Denominator

[0034] where

[0035] Numerator=(N*Σ(I*R))−(ΣI*ΣR)

[0036] Denominator={(N*ΣI²−(ΣI)²)*(N*ΣR²−(ΣR)²)}^(1/2)

[0037] N=number of pixels in reference template

[0038] I=inspection image

[0039] R=reference pattern

[0040] The correlation processor calculates 3 terms for the NGC equation:

[0041] Σ(I*R)

[0042] ΣI² and

[0043] ΣI

[0044] Prior to running an inspection the processor calculates the 2 reference pattern items:

[0045] ΣR and

[0046] N*ΣR²−(ΣR)²

[0047] The processor 201 provides the memory controller module 233 with pointers to the start of the appropriate reference pattern and the location in the search ROI to perform the correlation. The memory interface to both the FPGA SDRAM 221 and SRAM 222 is 16-bits wide and each image grayscale value is only 8-bits wide. The image is stored in the FPGA SRAM memory 222 so that each image row starts on an even 16-bit word boundary. The processor also stores the various reference patterns in the SDRAM 221 so that they are aligned on 16-bit boundaries. This allows the correlation processor to simultaneously calculate the 3 terms for two adjacent NGC correlation values. At the completion of the correlation process the correlation processor provides the processor with 6 terms, 3 for the even NGC value and 3 for the odd NGC value.

[0048]FIG. 3 illustrates an embodiment of a general purpose computing systems used as part of a system for configuring an optical circuit in accordance with the invention. As shown in FIG. 3, the master controller processing system 300 is connected to a WAN/LAN 100, or other communications network, via network interface unit 310. Those of ordinary skill in the art will appreciate that network interface unit 310 includes the necessary circuitry for connecting a processing system to WAN/LAN 200, and is constructed for use with various communication protocols including the TCP/IP protocol. Typically, network interface unit 310 is a card contained within the processing system 300.

[0049] The processing system 300 also includes processing unit 312, video display adapter 314, and a mass memory, all connected via bus 322. The mass memory generally includes RAM 316, ROM 332, and one or more permanent mass storage devices, such as hard disk drive 328, a tape drive, CD-ROM/DVD-ROM drive 326, and/or a floppy disk drive. The mass memory stores operating system 320 for controlling the operation of master controller processing system 300. It will be appreciated that this component may comprise a general purpose server operating system as is known to those of ordinary skill in the art, such as UNIX, LINUX™, MAC OS®, or Microsoft WINDOWS NT®. Basic input/output system (“BIOS”) 318 is also provided for controlling the low-level operation of master controller processing system 300.

[0050] The mass memory as described above illustrates another type of computer-readable media, namely computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules or other data. Examples of computer storage media include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by a computing device.

[0051] The mass memory also stores program code and data for providing a master controller processing and network development. More specifically, the mass memory stores applications including master controller processing module 330, programs 334, and other applications 336. Processing module 330 includes computer executable instructions which, when executed by master controller processing system 300, performs the logic described above.

[0052] The processing system 300 also comprises input/output interface 324 for communicating with external devices, such as a mouse, keyboard, scanner, or other input devices not shown in FIG. 3. Likewise, master controller processing system 300 may further comprise additional mass storage facilities such as CD-ROM/DVD-ROM drive 326 and hard disk drive 328. Hard disk drive 328 is utilized by master controller processing system 300 to store, among other things, application programs, databases, and program data used by master controller processing module 330. For example, customer databases, product databases, image databases, and relational databases may be stored. The operation and implementation of these databases is well known to those skilled in the art.

[0053] One skilled in the art may readily recognize that a processing system 300 may possess only a subset of the components described above without deviating from the spirit and scope of the present invention as recited within the attached claims. For example, in one embodiment, the mass storage devices for the master controller processing system 300 may be eliminated with all of the data storage being provided by solid state memory. Programming modules may be stored in ROM or EEPROM memory for more permanent storage where the programming modules consist of firmware that is loaded or updated infrequently. Similarly, as an embedded processing system, many of the user interface devices such as input devices and display devices may also not be present. In such a system, the processing system described above may be included within circuitry that is packaged within a common housing or package.

[0054]FIG. 4 illustrates an example machine vision system attempting to locate a reference image within an image from a camera field of view (FOV) in accordance with an embodiment of the present invention. As discussed above, an acquired image 401 is typically much larger than the reference image 403 that is to be located within the acquired image 401. As is also discussed above, the processing system may wish to restrict the search region of interest (ROI) to be an area at a known location which is of interest. When beginning to examine the acquired image 401, the search ROI 402 may correspond to the entire acquired image 401. Once information is determined to limit the search ROI 402 to a smaller area, less processing is needed to perform a correlation or matching operation.

[0055] Typically, the reference image 403 is generated well before the acquired image is obtained. The reference image 403 represents an image that is expected to be found within the acquired image 401. The task of the vision system is to find where within the acquired image 401 the reference image is located, and to identify any orientation information that is needed to define the location of objects whose position is know relative to the reference image.

[0056]FIG. 5 illustrates a series of possible reference image arrangements when found in the acquired image in accordance with the present invention. In this example, consider a reference item 511, which corresponds in this example to a letter “R”, to be located within five (5) different search ROIs of an acquired image. In an ideal case, the reference image would appear perfectly centered within the search ROI as shown in ROI 501. The reference R 511 is located at the center position and is oriented parallel to each of the sides of the ROI 501.

[0057] More typically, the reference item R 511 is usually displaced in either the x-direction as shown in ROI 502, the y-direction as shown in ROI 503, or both the x-direction and y-direction as shown in ROI 504. These positional offsets arise from the fact that the acquired image does not always know the exact location of an object that passes within the camera FOV. In an even more complicated situation that arises with regularity, a reference item 511 may be rotated a number of degrees (d°) relative to the expected orientation 506 in addition to the positional translation discussed above. The correlation operation must take all of these examples into account when attempting to locate a reference item 511 within a search FOV 501-505.

[0058]FIG. 6 illustrates a correlation of a reference image with a larger image at various decimation levels in accordance with an example embodiment of the present invention. The correlation operation that is to be performed as part of the above matching operation requires that the pixel values of the reference image 601-602 be correlated with corresponding pixels in a search ROI 603 for each possible location of the reference image 601-602 within the search ROI 603. At each possible location within the search ROI 603, the correlation value at that location is defined as:

r=Numerator/Denominator

[0059] where

[0060] Numerator=(N*Σ(I*R))−(ΣI*ΣR)

[0061] Denominator={(N*ΣI²−(ΣI)²)*(N*ΣR²−(ΣR)²)}^(1/2)

[0062] N=number of pixels in reference template

[0063] I=inspection image

[0064] R=reference template

[0065] From the above formula it is easily seen that calculating a single correlation value requires numerous multiplications, additions, subtractions, divides, and square-roots. This needs to be repeated as the template is slid around the entire search ROI. The number of correlation results is (m2−m1+1)*(n2−n1+1) where the search ROI is m2×n2 and the object ROI is m1×n1. As an example assume that the m2=250, n2=200 (250×200), m1=100, and n1=100 (100×100) then the total number of correlation values is 15251. This operation requires:

[0066] 305,106,257 multiples;

[0067] 457,550,000 adds;

[0068] 45,753 subtracts;

[0069] 15,251 divides; and

[0070] 15,251 square-roots.

[0071] Clearly, as the resolution required to represent the reference image increases, the amount of computations needed increases significantly. Because of this fact and because the above value is calculated for each possible location 610-612 of the reference image within the search ROI, a need exists to keep the search ROI as small as possible as the resolution of the reference image increases.

[0072] One solution to attempt to minimize the total amount of processing required when performing the above correlation operations is to correlate a reference image that uses a low resolution 601 against an a larger search ROI to find locations where possible matches Occur. Once these locations are found, reference images that correspond to the reference item at higher resolutions may be correlated over a much smaller search ROI centered about the previously found match location. Presumably the match location will remain within the much smaller ROI when the higher resolution reference image is used. Depending upon the range of resolutions used, the above find a best match location within an increasingly smaller search ROI may be found as the search process narrows in upon the best match location.

[0073] The present invention defines the acceptable ranges in resolutions for the reference image in the process above. As discussed above, a desire exists to use as small a resolution as possible for the initial reference image in order to minimize the initial processing that is to occur over the entire acquired image. Unfortunately, the information content found within the item in the reference image may not permit a particularly small reference image to be used. A process is needed to identify the range of permissible resolutions that may be successfully used in the above processing.

[0074]FIG. 7 illustrates a processing sequence of images to locate an acceptable range of decimation levels for use in locating a reference image within a larger image in accordance with an embodiment of the present invention. The processing to determine the range of acceptable reference image resolutions begins with the acquisition of a high resolution reference image 701. This image 701 is obtained using an image acquisition device such as a digital camera that has been optically zoomed to provide a desired spatial resolution for each pixel. From the acquired image, the area of the acquired image that contains the reference item is selected. This sub-image becomes the base reference image 701 that is used for all further processing.

[0075] Next, the high resolution reference image 701 is decimated by 2 in each direction repeatedly until a generated decimated reference image contains between 10 and 20 pixels per dimension. For example, if the high resolution reference image 701 begins as a 200×200 pixel image, a set of generated decimated images 702 are generated that possess the following dimensions: N/2 100 × 100 N/4 50 × 50 N/8 25 × 25 N/16 12 × 12

[0076] These four decimated reference images represent the possible resolutions for the reference image that is to be used in a Normalized Gray Scale Pattern Find Process described above. These decimated images may be obtained either by sub-sampling every other pixel in both the x and y dimensions or by averaging a 2×2 area of pixels into a single decimated pixel.

[0077] Once these decimated reference images 702 are obtained, the decimated reference images 702 are interpolated back to the full resolution of the high resolution reference image 701. In the above example, the four decimated reference images 703 are interpolated back to a 200×200 image 703. The interpolation is accomplished by increasing the resolution of the lowest resolution image by 2 in both directions. Each pixel value in the lowest resolution image array form a 2×2 array in the higher resolution image. The coordinates of the upper left corner of the 2×2 array in the higher resolution image is the location of the pixel in the lower resolution image times 2. This process is repeated until the resulting image is at the full resolution image size.

[0078] These interpolated images 703 are then correlated against the high resolution image 701 to determine the results of the reduction of resolution significantly affects the ability to properly match the reference image. When the result of the correlation value is greater than a predetermined threshold, the decimated reference image is determined to be acceptable for use in finding potential match locations in an acquired image using a Normalized Gray Scale Pattern Find Process described above. When the result of the correlation value is less than a predetermined threshold, the decimated reference image is not used, thus establishing the maximum decimation level. In a preferred embodiment, the predetermined threshold has been experimentally selected to be 0.4. Of course, one skilled in the art will recognize that other thresholds and other rates of decimation may be used without deviating from the spirit and scope of the present invention as recited within the attached claims.

[0079] The above described process assumes that the reference image is processed without regard to the amount of rotation that may be permitted in the reference image before a cross-correlation is performed. One skilled in the art will recognize that the high resolution reference image may be rotated in either direction by a predetermined amount in discrete steps of rotation before the decimation processing begins. In such a case, the rotated high resolution reference image is processed as if it were an input high resolution image and the same test for successful cross-correlation may be used. Such a modification would not necessarily deviate from the spirit and scope of the present invention as recited within the attached claims.

[0080]FIG. 8 illustrates a set of processing modules used within an example embodiment of a machine vision system in accordance with the present invention. The vision system according to the present invention is used to generated the reference image and its corresponding decimated resolution values for use in a Normalized Gray Scale Pattern Find Process described above. The processing system 801 includes a processing control module 811, an image interpolation module 812, an image selection module 813, an image decimation module 814, and an image cross-correlation module 815. The processing module 801 is connected to a reference image data module 803.

[0081] The reference image data module 803 is used to acquire the reference image at its highest resolution and to select the area around the reference item that forms the high resolution reference image. The high resolution reference image is provided by the reference image data module 803 to the processing module 801 for use in its processing modules.

[0082] Within the processing module 801, the processing control module 811 receives user input commands to begin the processing of a reference image. This module 811 coordinates the operation of the other modules within the processing module 801 during their operation. The results of the processing, which may be in the form of the decimated reference images, or merely the decimation range values, may be passed by the processing control module 811 to other processing systems for use in a Normalized Gray Scale Pattern Find Process described above.

[0083] The image decimation module 814 accepts the original high resolution reference image and generates a set of lower resolution decimated reference images until the resolution of the decimated reference image possesses a minimum dimension between 10 and 20 pixels. These decimated reference images are then used in further processing to select the decimated reference images that may successfully be used in the Normalized Gray Scale Pattern Find Process as described above.

[0084] The image interpolation module 812 accepts decimated images from the image decimation module 814 and generates high resolution interpolated reference images that are to be cross-correlated against the original high resolution reference image. The image cross-correlation module 815 correlates the set of high resolution interpolated reference images with the original high resolution reference image to determine if the decimated reference image may be successfully used in the Normalized Gray Scale Pattern Find Process as described above.

[0085] The image selection module 813 determines the lowest possible image resulotion for the decimated reference image that may be successfully used in the Normalized Gray Scale Pattern Find Process as described above using the results of the processing from the image cross-correlation module 815.

[0086] The embodiments described herein are implemented as logical operations performed by a computer. The logical operations of these various embodiments of the present invention are implemented (1) as a sequence of computer implemented steps or program modules running on a computing system and/or (2) as interconnected machine modules or hardware logic within the computing system. The implementation is a matter of choice dependent on the performance requirements of the computing system implementing the invention. Accordingly, the logical operations making up the embodiments of the invention described herein can be variously referred to as operations, steps, or modules.

[0087] While the above embodiments of the present invention describe a system and method for determining a range of image decimation values for use in processing of images within a machine vision system, one skilled in the art will recognize that the use of the processing system discussed above are merely example embodiments of the present invention. As long as a decimation process followed by a cross correlation process is used to select an acceptable range for reduced resolution reference images to be used in a machine vision system, the present invention would be useable in other data processing systems. It is to be understood that other embodiments may be utilized and operational changes may be made without departing from the scope of the present invention as recited in the attached claims.

[0088] As such, the foregoing description of the exemplary embodiments of the invention has been presented for the purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above teaching. It is intended that the scope of the invention be limited not with this detailed description, but rather by the claims appended hereto. The present invention is presently embodied as a method, apparatus, and a computer data product containing a computer program for a system and method for determining a range of image decimation values for use in processing of images within a machine vision system. Since many embodiments of the invention can be made without departing from the spirit and scope of the invention, the invention resides in the claims hereinafter appended. 

What is claimed is:
 1. A system for determining a lowest image resolution for a range of image decimation values for use in processing of images within a machine vision system, the system comprising: a reference image data module for providing a high resolution reference image; an image decimation module for generating a set of decimated images having a reduced resolution based upon the high resolution reference image; an image interpolation module for generating a set of interpolated reference images having a spatial image resolution identical to the high resolution reference image from the set of decimated images; an image cross correlation module for cross-correlating the set of interpolated reference images with the high resolution reference image; and an image selection module for determining the decimated images to be used in a normalized gray scale pattern find process.
 2. The system according to claim 1, wherein the reference image data module acquires an input image and selects an area around a reference item to generate the high resolution reference image.
 3. The system according to claim 1, wherein the image decimation module successively reduced the resolution of the decimated reference image until a minimum dimension is less than a minimum number of pixels.
 4. The system according to claim 1, wherein the image decimation module successively reduced the resolution of the decimated reference image until a minimum dimension is between 10 and 20 pixels.
 5. The system according to claim 4, wherein the image decimation module successively reduces the resolution of the decimated reference images by powers of
 2. 6. The system according to claim 5, wherein the image decimation module successively reduces the resolution of the decimated reference image by sub-sampling the original reference image.
 7. The system according to claim 5, wherein the image decimation module successively reduces the resolution of the decimated reference image by averaging a set of pixels within the original reference image.
 8. The system according to claim 1, wherein the image selection module generates a set of acceptable decimated reference images from the set of decimated reference images using the results of the image cross-correlation module.
 9. The system according to claim 8, wherein the image selection module includes a particular decimated reference image within the set of acceptable decimated reference images when result of the cross-correlation of the interpolated reference image generated from the particular decimated reference image with the high resolution reference image is greater than a predetermined threshold value.
 10. The system according to claim 9, wherein the predetermined threshold value is 0.4.
 11. A method of determining a lowest possible image resolution for a range of image decimation values for use in processing of images within a machine vision system, the method comprising: generating a high resolution reference image; generating a set of decimated reference image from the high resolution reference image; generating a set of interpolated reference images having a spatial image resolution identical to the high resolution reference image from the set of decimated images; cross-correlating the set of interpolated reference images with the high resolution reference image to generate a set of cross-correlation values; and selecting a subset of the set of decimated reference images corresponding to interpolated reference images that generated a cross correlation value greater than a predetermined threshold value.
 12. The method according to claim 11, wherein the method further comprises: using the subset of decimated reference images within a normalized gray scale pattern find process.
 13. The method according to claim 12, wherein the predetermined threshold value is 0.4.
 14. The method according to claim 11, wherein the set of decimated reference images are generated by reducing the resolution of the high resolution reference image by powers of 2 until a minimum dimension of the decimated reference image is less than a minimum number of pixels.
 15. The method according to claim 14, wherein the minimum number of pixels is between 10 and 20 pixels.
 16. A computer data product readable by a computing system and encoding instructions for implementing a computer method of determining a lowest possible image resolution for a range of image decimation values for use in processing of images within a machine vision system, the method comprising: generating a high resolution reference image; generating a set of decimated reference images from the high resolution reference image; generating a set of interpolated reference images having a spatial image resolution identical to the high resolution reference image from the set of decimated images; cross-correlating the set of interpolated reference images with the high resolution reference image to generate a set of cross-correlation values; and selecting a subset of the set of decimated reference images corresponding to interpolated reference images that generated a cross correlation value greater than a predetermined threshold value.
 17. The computer data product according to claim 16, wherein the method further comprises: using the subset of decimated reference images within a normalized gray scale pattern find process.
 18. The computer data product according to claim 17, wherein the predetermined threshold value is 0.4.
 19. The computer data product according to claim 16, wherein the set of decimated reference images are generated by reducing the resolution of the high resolution reference image by powers of 2 until a minimum dimension of the decimated reference image is less than a minimum number of pixels.
 20. The computer data product according to claim 19, wherein the minimum number of pixels is between 10 and 20 pixels. 